package com.dtp.common.entity;

import com.dtp.common.constant.DynamicTpConst;
import com.dtp.common.em.NotifyItemEnum;
import lombok.Data;

import java.util.List;
import java.util.concurrent.TimeUnit;

/**
 * ThreadPool的基本属性，主要用于适配器模块。
 *
 * @author yanhom
 * @since 1.0.6
 *
 * @remark muse
 **/
@Data
public class TpExecutorProps {
    private String threadPoolName;      // 线程池名称
    private String threadPoolAliasName; // 线程池的简单别名，用于通知。
    private int corePoolSize = 1;       // 核心线程数
    private int maximumPoolSize = DynamicTpConst.AVAILABLE_PROCESSORS; // 最大线程数
    private long keepAliveTime = 60;            // 当线程数量大于核心时，这是多余空闲线程在终止前等待新任务的最大时间。
    private TimeUnit unit = TimeUnit.SECONDS;   // 超时时间单位
    private List<NotifyItem> notifyItems;       // 通知项，请见：NotifyItemEnum
    private List<String> platformIds;           // 通知平台id列表
    private boolean notifyEnabled = true;       // 是否开启通知
}
